/**
 * @author lynn
 *
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.StringTokenizer;

public class Login {

	public String userId;
	public String passWord;

	JTextField idTextField = new JTextField(10); // 아이디 입력
	JPasswordField passTextField = new JPasswordField(10); // 패스워드 입력

	public static void main(String[] args) {
		Login login = new Login();
		login.go();
	}

	/**
	 * 로그인 GUI 화면
	 */
	public void go() {
		JFrame frame = new JFrame("Java Login");

		JLabel labelMname = new JLabel("빨간우체통", JLabel.CENTER); // 메신져 이름 적는 공간
		labelMname.setBackground(Color.white);
		labelMname.setFont(new Font("굴림", Font.BOLD, 23));

		JLabel labelId = new JLabel("I      D:");
		JLabel labelPass = new JLabel("PassWord:");

		JPanel panelId = new JPanel(new GridLayout(1, 2)); // 아이디 처리 공간
		panelId.add(labelId);

		panelId.add(idTextField);

		JPanel panelPass = new JPanel(new GridLayout(1, 2)); // 비밀번호 처리 공간
		panelPass.add(labelPass);

		panelPass.add(passTextField);
		passTextField.setEchoChar('*'); // 패스워드는 *처리

		JPanel panelMerge = new JPanel(); // 아이디 + 비밀번호 처리 공간
		panelMerge.add(panelId);
		panelMerge.add(panelPass);

		JPanel panelChoice = new JPanel(new FlowLayout()); // 사용자 선택 공간 (로그인 or
															// 취소)
		panelChoice.setBackground(Color.white);

		JButton loginButton = new JButton("LOGIN"); // 로그인 버튼

		loginButton.addActionListener(new LoginButtonListener()); // 로그인버튼리스너에
																	// 로그인버튼 추가

		JButton cancelButton = new JButton("CANCEL"); // 취소 버튼

		cancelButton.addActionListener(new CancelButtonListener()); // 취소버튼리스너에
																	// 취소버튼 추가

		panelChoice.add(loginButton); // 로그인 버튼 추가
		panelChoice.add(cancelButton); // 취소 버튼 추가

		frame.setSize(300, 300); // 로그인창 사이즈 설정
		frame.setResizable(false);
		frame.add("South", panelChoice);
		frame.add("North", labelMname);
		frame.add("Center", panelMerge);
		frame.setVisible(true);

	}

	// 로그인 버튼을 누르면 validate method가 실행하도록!
	class LoginButtonListener implements ActionListener {

		public void actionPerformed(ActionEvent event) {

			/**
			 * 사용자가 넣은 아이디를 UserFile 로 전달
			 */
			String userId = idTextField.getText();
			System.out.println(userId); // for test
			int colIndex = 1;
			UserFile uf = new UserFile();
			String searchResult = uf.gettokenByIndex(userId, colIndex);
			System.out.println(searchResult);

			/**
			 * UserFile에서 return 받은 값을 사용자정보 파일의 패스워드와 비교 validate 정보가 일치하면
			 * MScreen 화면으로 이동 정보가 일치하지 않으면 "잘못된 비밀번호입니다." 출력
			 */

			boolean passWordRight = false;
			// 패스워드 확인
			char passWordChar[] = passTextField.getPassword();
			String passWord = new String(passWordChar);
			System.out.println(passWord);
			if (passWord.equalsIgnoreCase(searchResult)) {
				MScreen ms = new MScreen();
				ms.go();
				passWordRight = true;
			} else {
				JOptionPane.showMessageDialog(null, "패스워드가 일치하지 않습니다");
			}

			System.out.println(passWordRight);

		} // validate 끝
	} // LoginButtonListener class 끝

	// 취소 버튼을 누르면 화면이 사라지도록!
	class CancelButtonListener implements ActionListener {
		public void actionPerformed(ActionEvent event) {
			System.out.println();
		}
	}
} // Login 클래스 끝